package com.tbit.uqbike.client.remote.tenxun;

import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

/**
 * @Author: chen
 * @Description: 小程序工具类
 * @Date: 创建于 14:11 2022/7/20
 */
@Slf4j
public class WxUtils {


    private static String generateUrl = "https://api.weixin.qq.com/wxa/generatescheme?access_token=";

    /**
     * 获取小程序 scheme 码
     *
     * @param access_token access_token
     * @param page         调转小程序路径
     * @param expire_time  失效时间
     */
    public static String getUrlScheme(String access_token, String page, long expire_time) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("expire_type", "0");
        jsonObject.put("expire_time", expire_time);
        JSONObject jump_wxa = new JSONObject();
        jump_wxa.put("path", page);
        jsonObject.put("jump_wxa", jump_wxa);
        String url = generateUrl + access_token;
        JSONObject jsonObjectTemplate;
        try {
            String data = HttpRequest.post(url)
                    .header(Header.CONTENT_TYPE, "application/json")
                    .header(Header.ACCEPT, "application/json")
                    //请求主体
                    .body(JSONObject.toJSONString(jsonObject))
                    .execute().body();
            //结果转成Object对象
            jsonObjectTemplate = JSONObject.parseObject(data);
            if ("0".equals(jsonObjectTemplate.getString("errcode"))) {
                return jsonObjectTemplate.getString("openlink");
            }
        } catch (Exception e) {
            log.error("获取小程序scheme码异常", e);
        }
        return null;
    }

}
